/*!
\copyright  Copyright (c) 2023 Qualcomm Technologies International, Ltd.
            All Rights Reserved.
            Qualcomm Technologies International, Ltd. Confidential and Proprietary.
\file
\brief      Generate Event Bus Peer Events
*/

#ifndef TWS_TOPOLOGY_PEER_EVENTS_H
#define TWS_TOPOLOGY_PEER_EVENTS_H

#include "tws_topology.h"

/*! \brief Generate event bus event indicating that peer pairing has started

    \param peer_addr the address of the peer device being targeted (if known)
 */
void TwsTopology_GeneratePeerPairingStartedEvent(bdaddr * peer_addr);

/*! \brief Generate event bus event indicating that peer pairing has completed

 */
void TwsTopology_GeneratePeerPairingCompletedEvent(void);

/*! \brief Generate event bus event indicating that peer pairing has failed

 */
void TwsTopology_GeneratePeerPairingFailedEvent(void);

/*! \brief Generate event bus event indicating that peer connecting has started
 */
void TwsTopology_GeneratePeerConnectingStartedEvent(void);

/*! \brief Generate event bus event indicating that the peer ACL is connected 
 */
void TwsTopology_GeneratePeerAclConnectedEvent(void);

/*! \brief Generate event bus event indicating that the peer is connected and 
    profiles are ready for use
 */
void TwsTopology_GeneratePeerConnectedEvent(void);

/*! \brief Generate event bus event indicating that the peer connecting has failed
 */
void TwsTopology_GeneratePeerConnectingFailedEvent(void);

/*! \brief Generate event bus event indicating that the peer has been disconnected
 */
void TwsTopology_GeneratePeerDisconnectedEvent(void);

/*! \brief Generate event bus event indicating that role swap has been initiated

    \param initiator TRUE if the initiator of the role swap. FALSE otherwise.

 */
void TwsTopology_GeneratePeerRoleSwapInitiatedEvent(bool initiator);

/*! \brief Generate event bus event indicating that role swap has completed

    \param new_role_for_local_device new role of the local device
 */
void TwsTopology_GeneratePeerRoleSwapCompleteEvent(tws_topology_role new_role_for_local_device);

/*! \brief Generate event bus event indicating that role swap has timedout

    \param initiator TRUE if the initiator of the role swap. FALSE otherwise.

 */
void TwsTopology_GeneratePeerRoleSwapTimeoutEvent(bool initiator);

/*! \brief Generate event bus event indicating that role swap has been vetoed

 */
void TwsTopology_GeneratePeerRoleSwapVetoedEvent(void);

#endif